<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!-- saved from url=(0028)http://jdbi.org/archive.html -->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta>


<title>abacus-common</title>

<script type="text/javascript" src="./css/ga.js"></script>
<script type="text/javascript">
	if (top.location != self.location)
		top.location.replace(self.location);
</script>

<link href="./css/css" rel="stylesheet" type="text/css"></link>
<link href="./css/css(1)" rel="stylesheet" type="text/css"></link>
<link rel="stylesheet" href="./css/syntax.css" type="text/css"></link>
<link rel="stylesheet" href="./css/screen.css" type="text/css"></link>

<script>
	(function(i, s, o, g, r, a, m) {
		i['GoogleAnalyticsObject'] = r;
		i[r] = i[r] || function() {
			(i[r].q = i[r].q || []).push(arguments)
		}, i[r].l = 1 * new Date();
		a = s.createElement(o), m = s.getElementsByTagName(o)[0];
		a.async = 1;
		a.src = g;
		m.parentNode.insertBefore(a, m)
	})(window, document, 'script', '//www.google-analytics.com/analytics.js',
			'ga');

	ga('create', 'UA-65247258-1', 'auto');
	ga('send', 'pageview');
</script>

</head>

<body>
	<div id="site">
		<h1>
			<a href="./index.html">abacus-common</a> <span id="navigation"> <a
				href="./docs.html">Docs</a> | <a href="./download.html">Download</a>
				| <a href="./api-docs/index.html">Javadoc</a> | <a href="./faq.html">FAQ</a>
				| <a href="./community.html">Community</a>
			</span>
		</h1>
	</div>
	<p>
		<center>
		<i>Release the power in Java programming</i></center>
	</p>

	<div id="content">
		<div id="page">
			<p>
				<a href="./index.html">abacus-common</a> is a general programming
				library/framework in Java. It's simple, powerful and easy to use
				with concise APIs. To provide the unmatchable programming
				experiences and high performance solutions, We think the API design
				and implementation again and again. First, let's take a quick look:
			</p>

			<li><b>Most daily used methods: range/repeat/concat/stringOf/valueOf/as/...</b></li>
			<!-- HTML generated using hilite.me -->
			<div
				style="background: #f8f8f8; overflow: auto; width: auto; border: solid gray; border-width: .1em .1em .1em .8em; padding: .2em .6em;">
				<pre style="margin: 0; line-height: 125%">
<span style="color: #B00040">int</span><span style="color: #666666">[]</span> a <span
						style="color: #666666">=</span> Array<span style="color: #666666">.</span><span
						style="color: #7D9029">range</span><span style="color: #666666">(1,</span> <span
						style="color: #666666">3);</span>
<span style="color: #B00040">int</span><span style="color: #666666">[]</span> b <span
						style="color: #666666">=</span> Array<span style="color: #666666">.</span><span
						style="color: #7D9029">rangeClosed</span><span
						style="color: #666666">(3,</span> <span style="color: #666666">7);</span>
<span style="color: #B00040">int</span><span style="color: #666666">[]</span> c <span
						style="color: #666666">=</span> N<span style="color: #666666">.</span><span
						style="color: #7D9029">concat</span><span style="color: #666666">(</span>a<span
						style="color: #666666">,</span> b<span style="color: #666666">);</span>
String str <span style="color: #666666">=</span> N<span
						style="color: #666666">.</span><span style="color: #7D9029">stringOf</span><span
						style="color: #666666">(</span>c<span style="color: #666666">);</span>
N<span style="color: #666666">.</span><span style="color: #7D9029">println</span><span
						style="color: #666666">(</span>str<span style="color: #666666">);</span> <span
						style="color: #408080; font-style: italic">// [1, 2, 3, 4, 5, 6, 7]</span>
<span style="color: #B00040">int</span><span style="color: #666666">[]</span> d <span
						style="color: #666666">=</span> N<span style="color: #666666">.</span><span
						style="color: #7D9029">valueOf</span><span style="color: #666666">(</span><span
						style="color: #B00040">int</span><span style="color: #666666">[].</span><span
						style="color: #7D9029">class</span><span style="color: #666666">,</span> str<span
						style="color: #666666">);</span>
assertTrue<span style="color: #666666">(</span>N<span
						style="color: #666666">.</span><span style="color: #7D9029">equals</span><span
						style="color: #666666">(</span>c<span style="color: #666666">,</span> d<span
						style="color: #666666">));</span>

List<span style="color: #666666">&lt;</span>String<span
						style="color: #666666">&gt;</span> list <span
						style="color: #666666">=</span> N<span style="color: #666666">.</span><span
						style="color: #7D9029">asList</span><span style="color: #666666">(</span><span
						style="color: #BA2121">&quot;abc&quot;</span><span
						style="color: #666666">,</span> <span style="color: #BA2121">&quot;1&quot;</span><span
						style="color: #666666">,</span> <span style="color: #BA2121">&quot;2&quot;</span><span
						style="color: #666666">,</span> <span style="color: #BA2121">&quot;3&quot;</span><span
						style="color: #666666">);</span>
Map<span style="color: #666666">&lt;</span>String<span
						style="color: #666666">,</span> Integer<span
						style="color: #666666">&gt;</span> map <span
						style="color: #666666">=</span> N<span style="color: #666666">.</span><span
						style="color: #7D9029">asMap</span><span style="color: #666666">(</span><span
						style="color: #BA2121">&quot;a&quot;</span><span
						style="color: #666666">,</span> <span style="color: #666666">1,</span> <span
						style="color: #BA2121">&quot;b&quot;</span><span
						style="color: #666666">,</span> <span style="color: #666666">2,</span> <span
						style="color: #BA2121">&quot;c&quot;</span><span
						style="color: #666666">,</span> <span style="color: #666666">3);</span>
ImmutableSet<span style="color: #666666">&lt;</span>String<span
						style="color: #666666">&gt;</span> set <span
						style="color: #666666">=</span> ImmutableSet<span style="color: #666666">.</span><span
						style="color: #7D9029">of</span><span
						style="color: #666666">(</span><span style="color: #BA2121">&quot;abc&quot;</span><span
						style="color: #666666">,</span> <span style="color: #BA2121">&quot;1&quot;</span><span
						style="color: #666666">,</span> <span style="color: #BA2121">&quot;2&quot;</span><span
						style="color: #666666">,</span> <span style="color: #BA2121">&quot;3&quot;</span><span
						style="color: #666666">);</span>
</pre>
			</div>


			<p></p>
			<li><b>Primitive List/Seq:</b></li>
<!-- HTML generated using hilite.me --><div style="background: #f8f8f8; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%"><span style="color: #B00040">int</span> avg <span style="color: #666666">=</span> IntList<span style="color: #666666">.</span><span style="color: #7D9029">random</span><span style="color: #666666">(10).</span><span style="color: #7D9029">distinct</span><span style="color: #666666">().</span><span style="color: #7D9029">average</span><span style="color: #666666">().</span><span style="color: #7D9029">getAsInt</span><span style="color: #666666">();</span>

Map<span style="color: #666666">&lt;</span>Integer<span style="color: #666666">,</span> String<span style="color: #666666">&gt;</span> map <span style="color: #666666">=</span> Seq<span style="color: #666666">.</span><span style="color: #7D9029">of</span><span style="color: #666666">(</span><span style="color: #BA2121">&quot;a&quot;</span><span style="color: #666666">,</span> <span style="color: #BA2121">&quot;b&quot;</span><span style="color: #666666">,</span> <span style="color: #BA2121">&quot;c&quot;</span><span style="color: #666666">).</span><span style="color: #7D9029">mapToInt</span><span style="color: #666666">(</span>e <span style="color: #666666">-&gt;</span> e<span style="color: #666666">.</span><span style="color: #7D9029">hashCode</span><span style="color: #666666">()).</span><span style="color: #7D9029">toMap</span><span style="color: #666666">(</span>e <span style="color: #666666">-&gt;</span> e<span style="color: #666666">,</span> e <span style="color: #666666">-&gt;</span> String<span style="color: #666666">.</span><span style="color: #7D9029">valueOf</span><span style="color: #666666">(</span>e<span style="color: #666666">));</span>

List<span style="color: #666666">&lt;</span>String<span style="color: #666666">&gt;</span> list <span style="color: #666666">=</span> N<span style="color: #666666">.</span><span style="color: #7D9029">asList</span><span style="color: #666666">(</span><span style="color: #BA2121">&quot;a&quot;</span><span style="color: #666666">,</span> <span style="color: #BA2121">&quot;b&quot;</span><span style="color: #666666">,</span> <span style="color: #BA2121">&quot;c&quot;</span><span style="color: #666666">);</span>

<span style="color: #408080; font-style: italic">// Seq provides the extra most daily used and functional API for Collection.</span>
Seq<span style="color: #666666">.</span><span style="color: #7D9029">of</span><span style="color: #666666">(</span>list<span style="color: #666666">).</span><span style="color: #7D9029">map</span><span style="color: #666666">(</span>e <span style="color: #666666">-&gt;</span> N<span style="color: #666666">.</span><span style="color: #7D9029">repeat</span><span style="color: #666666">(</span>e<span style="color: #666666">,</span> <span style="color: #666666">3)).</span><span style="color: #7D9029">sumInt</span><span style="color: #666666">(</span>e <span style="color: #666666">-&gt;</span> e<span style="color: #666666">.</span><span style="color: #7D9029">hashCode</span><span style="color: #666666">());</span>
</pre></div>



			<p></p>
			<li><b>Lambda/Stream/Functional programming...</b></li>
			<!-- HTML generated using hilite.me -->
			<div
				style="background: #f8f8f8; overflow: auto; width: auto; border: solid gray; border-width: .1em .1em .1em .8em; padding: .2em .6em;">
				<pre style="margin: 0; line-height: 125%">Stream<span
						style="color: #666666">.</span><span style="color: #7D9029">of</span><span
						style="color: #666666">(</span><span style="color: #BA2121">&quot;abc&quot;</span><span
						style="color: #666666">,</span> <span style="color: #BA2121">&quot;123&quot;</span><span
						style="color: #666666">,</span> <span style="color: #BA2121">&quot;ab123&quot;</span><span
						style="color: #666666">).</span><span style="color: #7D9029">filter</span><span
						style="color: #666666">(</span>str <span style="color: #666666">-&gt;</span> str<span
						style="color: #666666">.</span><span style="color: #7D9029">startsWith</span><span
						style="color: #666666">(</span><span style="color: #BA2121">&quot;a&quot;</span><span
						style="color: #666666">)).</span><span style="color: #7D9029">forEach</span><span
						style="color: #666666">(</span><span style="color: #A0A000">N:</span><span
						style="color: #666666">:</span>println<span style="color: #666666">);</span>
<span style="color: #408080; font-style: italic">// abc</span>
<span style="color: #408080; font-style: italic">// ab123</span>

List<span style="color: #666666">&lt;</span>String<span
						style="color: #666666">&gt;</span> strs <span
						style="color: #666666">=</span> N<span style="color: #666666">.</span><span
						style="color: #7D9029">asList</span><span style="color: #666666">(</span><span
						style="color: #BA2121">&quot;Hello Java&quot;</span><span
						style="color: #666666">,</span> <span style="color: #BA2121">&quot;I LIKE Functional Programming&quot;</span><span
						style="color: #666666">);</span>

<span style="color: #408080; font-style: italic">// average length of words in the strings.</span>
Stream<span style="color: #666666">.</span><span style="color: #7D9029">of</span><span
						style="color: #666666">(</span>strs<span style="color: #666666">).</span><span
						style="color: #7D9029">flatMap2</span><span style="color: #666666">(</span>str <span
						style="color: #666666">-&gt;</span> str<span
						style="color: #666666">.</span><span style="color: #7D9029">split</span><span
						style="color: #666666">(</span><span style="color: #BA2121">&quot; &quot;</span><span
						style="color: #666666">)).</span><span style="color: #7D9029">averageDouble</span><span
						style="color: #666666">(</span>str <span style="color: #666666">-&gt;</span> str<span
						style="color: #666666">.</span><span style="color: #7D9029">length</span><span
						style="color: #666666">());</span>
<span style="color: #408080; font-style: italic">// 5.833333333333333</span>

<span style="color: #408080; font-style: italic">// count the characters in upper case.</span>
Stream<span style="color: #666666">.</span><span style="color: #7D9029">of</span><span
						style="color: #666666">(</span>strs<span style="color: #666666">).</span><span
						style="color: #7D9029">flatMapToChar</span><span
						style="color: #666666">(</span>str <span style="color: #666666">-&gt;</span> CharStream<span
						style="color: #666666">.</span><span style="color: #7D9029">from</span><span
						style="color: #666666">(</span>str<span style="color: #666666">)).</span><span
						style="color: #7D9029">filter</span><span style="color: #666666">(</span>ch <span
						style="color: #666666">-&gt;</span> N<span style="color: #666666">.</span><span
						style="color: #7D9029">isUpperCase</span><span
						style="color: #666666">(</span>ch<span style="color: #666666">)).</span><span
						style="color: #7D9029">count</span><span style="color: #666666">();</span>
<span style="color: #408080; font-style: italic">// 9</span>
</pre>
			</div>



			<p></p>
			<li><b>SQLBuilder/Executor...</b></li>
<!-- HTML generated using hilite.me --><div style="background: #f8f8f8; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%">String sql_insert <span style="color: #666666">=</span> insertInto<span style="color: #666666">(</span>Account<span style="color: #666666">.</span><span style="color: #7D9029">class</span><span style="color: #666666">,</span> N<span style="color: #666666">.</span><span style="color: #7D9029">asSet</span><span style="color: #666666">(</span><span style="color: #BA2121">&quot;id&quot;</span><span style="color: #666666">).</span><span style="color: #7D9029">sql</span><span style="color: #666666">();</span>
<span style="color: #408080; font-style: italic">// sql: INSERT INTO account (gui, first_name, last_name, last_update_time, create_time) VALUES (:gui, :firstName, :lastName, :lastUpdateTime, :createTime)</span>
<span style="color: #B00040">long</span> id <span style="color: #666666">=</span> sqlExecutor<span style="color: #666666">.</span><span style="color: #7D9029">insert</span><span style="color: #666666">(</span>sql_insert<span style="color: #666666">,</span> account<span style="color: #666666">);</span>

<span style="color: #408080; font-style: italic">// Read</span>
String sql_getById <span style="color: #666666">=</span> select<span style="color: #666666">(</span><span style="color: #BA2121">&quot;id&quot;</span><span style="color: #666666">,</span> <span style="color: #BA2121">&quot;gui&quot;</span><span style="color: #666666">,</span> <span style="color: #BA2121">&quot;firstName&quot;</span><span style="color: #666666">,</span> <span style="color: #BA2121">&quot;lastName&quot;</span><span style="color: #666666">).</span><span style="color: #7D9029">from</span><span style="color: #666666">(</span><span style="color: #BA2121">&quot;account&quot;</span><span style="color: #666666">).</span><span style="color: #7D9029">where</span><span style="color: #666666">(</span><span style="color: #BA2121">&quot;id = :id&quot;</span><span style="color: #666666">).</span><span style="color: #7D9029">sql</span><span style="color: #666666">();</span>
<span style="color: #408080; font-style: italic">// sql: SELECT id AS &quot;id&quot;, gui AS &quot;gui&quot;, first_name AS &quot;firstName&quot;, last_name AS &quot;lastName&quot; FROM account WHERE id = :id</span>
Account dbAccount <span style="color: #666666">=</span> sqlExecutor<span style="color: #666666">.</span><span style="color: #7D9029">queryForEntity</span><span style="color: #666666">(</span>Account<span style="color: #666666">.</span><span style="color: #7D9029">class</span><span style="color: #666666">,</span> sql_getById<span style="color: #666666">,</span> id<span style="color: #666666">);</span>

<span style="color: #408080; font-style: italic">//Update</span>
dbAccount<span style="color: #666666">.</span><span style="color: #7D9029">setFirstName</span><span style="color: #666666">(</span><span style="color: #BA2121">&quot;newFirstName&quot;</span><span style="color: #666666">);</span>
String sql_updateFirstNameById <span style="color: #666666">=</span> update<span style="color: #666666">(</span><span style="color: #BA2121">&quot;account&quot;</span><span style="color: #666666">).</span><span style="color: #7D9029">set</span><span style="color: #666666">(</span><span style="color: #BA2121">&quot;firstName&quot;</span><span style="color: #666666">).</span><span style="color: #7D9029">where</span><span style="color: #666666">(</span><span style="color: #BA2121">&quot;id = :id&quot;</span><span style="color: #666666">).</span><span style="color: #7D9029">sql</span><span style="color: #666666">();</span>
<span style="color: #408080; font-style: italic">// sql: UPDATE account SET first_name = :firstName WHERE id = :id</span>
sqlExecutor<span style="color: #666666">.</span><span style="color: #7D9029">update</span><span style="color: #666666">(</span>sql_updateFirstNameById<span style="color: #666666">,</span> dbAccount<span style="color: #666666">);</span>

<span style="color: #408080; font-style: italic">// Delete</span>
String sql_deleteByFirstName <span style="color: #666666">=</span> deleteFrom<span style="color: #666666">(</span><span style="color: #BA2121">&quot;account&quot;</span><span style="color: #666666">).</span><span style="color: #7D9029">where</span><span style="color: #666666">(</span><span style="color: #BA2121">&quot;firstName = :firstName&quot;</span><span style="color: #666666">).</span><span style="color: #7D9029">sql</span><span style="color: #666666">();</span>
<span style="color: #408080; font-style: italic">// sql: DELETE FROM account WHERE first_name = :firstName</span>
sqlExecutor<span style="color: #666666">.</span><span style="color: #7D9029">update</span><span style="color: #666666">(</span>sql_deleteByFirstName<span style="color: #666666">,</span> dbAccount<span style="color: #666666">);</span>
</pre></div>



			<p></p>
			<li><b>XML/JSONParser...</b></li>
			<!-- HTML generated using hilite.me -->
			<div
				style="background: #f8f8f8; overflow: auto; width: auto; border: solid gray; border-width: .1em .1em .1em .8em; padding: .2em .6em;">
				<pre style="margin: 0; line-height: 125%">String xml <span
						style="color: #666666">=</span> xmlParser<span
						style="color: #666666">.</span><span style="color: #7D9029">serialize</span><span
						style="color: #666666">(</span>account<span style="color: #666666">);</span>
<span style="color: #408080; font-style: italic">// XML: &lt;account&gt;&lt;id&gt;0&lt;/id&gt;&lt;gui&gt;9d436ceb-a85f-40b2-86aa-20625a7d68b0&lt;/gui&gt;&lt;firstName&gt;3e37c0e9-96c3-40f3-99a2-bde3a384956c&lt;/firstName&gt;&lt;lastName&gt;38d19d46-6701-4f36-a112-924376154280&lt;/lastName&gt;&lt;status&gt;0&lt;/status&gt;&lt;lastUpdateTime&gt;1437609384633&lt;/lastUpdateTime&gt;&lt;createTime&gt;1437609384633&lt;/createTime&gt;&lt;/account&gt;</span>
Account account2 <span style="color: #666666">=</span> xmlParser<span
						style="color: #666666">.</span><span style="color: #7D9029">deserialize</span><span
						style="color: #666666">(</span>Account<span style="color: #666666">.</span><span
						style="color: #7D9029">class</span><span style="color: #666666">,</span> xml<span
						style="color: #666666">);</span>

String json <span style="color: #666666">=</span> jsonParser<span
						style="color: #666666">.</span><span style="color: #7D9029">serialize</span><span
						style="color: #666666">(</span>account<span style="color: #666666">);</span>
<span style="color: #408080; font-style: italic">// JSON: {id:0, gui:&quot;edf40293-2e38-4c51-885b-e74638f7b7d2&quot;, firstName:&quot;f063cb51-75f6-4810-a8e6-8e55d2db440f&quot;, lastName:&quot;70e6f942-8400-4b84-9f17-02594d99ee2c&quot;, status:0, lastUpdateTime:1437609422217, createTime:1437609422217}</span>
account2 <span style="color: #666666">=</span> jsonParser<span
						style="color: #666666">.</span><span style="color: #7D9029">deserialize</span><span
						style="color: #666666">(</span>Account<span style="color: #666666">.</span><span
						style="color: #7D9029">class</span><span style="color: #666666">,</span> json<span
						style="color: #666666">);</span>
</pre>
			</div>



			<p></p>
			<li><b>Code Generation: </b>(<a href="./Account.java">Account.java</a>)</li>
<!-- HTML generated using hilite.me --><div style="background: #f8f8f8; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%"><span style="color: #408080; font-style: italic">// prepare class with fields:</span>
<span style="color: #008000; font-weight: bold">public</span> <span style="color: #008000; font-weight: bold">class</span> <span style="color: #0000FF; font-weight: bold">Account</span> <span style="color: #666666">{</span>
    <span style="color: #008000; font-weight: bold">private</span> String firstName<span style="color: #666666">;</span>
    <span style="color: #008000; font-weight: bold">private</span> String lastName<span style="color: #666666">;</span>
    <span style="color: #008000; font-weight: bold">private</span> Date birthdate<span style="color: #666666">;</span>
    <span style="color: #008000; font-weight: bold">private</span> String email<span style="color: #666666">;</span>
    <span style="color: #008000; font-weight: bold">private</span> String address<span style="color: #666666">;</span>
    <span style="color: #008000; font-weight: bold">private</span> Map<span style="color: #666666">&lt;</span>String<span style="color: #666666">,</span> List<span style="color: #666666">&lt;</span>Date<span style="color: #666666">&gt;&gt;</span> attrs<span style="color: #666666">;</span>
<span style="color: #666666">}</span>

<span style="color: #408080; font-style: italic">// Then just two lines to generate the mostly beautiful and well-formatted entity class:</span>
File srcDir <span style="color: #666666">=</span> <span style="color: #008000; font-weight: bold">new</span> File<span style="color: #666666">(</span><span style="color: #BA2121">&quot;./src&quot;</span><span style="color: #666666">);</span>
CodeGenerator<span style="color: #666666">.</span><span style="color: #7D9029">writeClassMethod</span><span style="color: #666666">(</span>srcDir<span style="color: #666666">,</span> Account<span style="color: #666666">.</span><span style="color: #7D9029">class</span><span style="color: #666666">);</span>
</pre></div>









			<p></p>
			<font size="5">Here are the features/APIs supported in
			abacus-common:</font>
			<ul style="padding-left: 60px; list-style-type: none;">

				<li>Most daily used APIs: 
				    <a href="./IOUtil_view.html">IOUtil</a>,
					<a href="./Multiset_view.html">Multiset</a>,
					<a href="./LongMultiset_view.html">LongMultiset</a>,  
					<a href="./BiMap_view.html">BiMap</a>,  
					<a href="./Multimap_view.html">Multimap</a>,
					<a href="./ImmutableList_view.html">ImmutableList</a>,
					<a href="./ImmutableSet_view.html">ImmutableSet</a>,
					<a href="./ImmutableMap_view.html">ImmutableMap</a>, 
					<a href="./Sheet_view.html">Sheet</a>, 
					<a href="./Pair_view.html">Pair</a>,  
					<a href="./Triple_view.html">Triple</a>, 
					<a href="./Tuple_view.html">Tuple</a>, 
					<a href="./Splitter_view.html">Splitter</a>, 
					<a href="./Joiner_view.html">Joiner</a>, 
					<a href="./Builder_view.html">Builder</a>, 
					<a href="./Difference_view.html">Difference</a>, 
					<a href="./Profiler_view.html">Profiler</a>, 
					<a href="./AsyncExecutor_view.html">AsyncExecutor</a>,
					<a href="./ContinuableFuture_view.html">ContinuableFuture</a>, 
					<a href="./Futures_view.html">Futures</a>, 
					<a href="./CodeGenerator_view.html">CodeGenerator</a>, 
					<a href="./HttpClient_view.html">HttpClient</a>, 
					<a href="./N_view.html">N</a> ...
				</li>

				<li>Primitive List: <a href="./BooleanList_view.html">BooleanList</a>,
					<a href="./CharList_view.html">CharList</a>, 
					<a href="./ByteList_view.html">ByteList</a>, 
					<a href="./ShortList_view.html">ShortList</a>, 
					<a href="./IntList_view.html">IntList</a>, 
					<a href="./LongList_view.html">LongList</a>, 
					<a href="./FloatList_view.html">FloatList</a>, 
					<a href="./DoubleList_view.html">DoubleList</a> and					
					<a href="./Seq_view.html">Seq</a>.
				</li>

				<li>Streams, both sequential and parallel, are supported for
					JDK7/Anrdoid and primitive types with more functions: <a
					href="./Stream_view.html">Stream</a>, <a
					href="./EntryStream_view.html">EntryStream</a>, <a
					href="./CharStream_view.html">CharStream</a>, <a
					href="./ByteStream_view.html">ByteStream</a>, <a
					href="./ShortStream_view.html">ShortStream</a>, <a
					href="./IntStream_view.html">IntStream</a>, <a
					href="./LongStream_view.html">LongStream</a>, <a
					href="./FloatStream_view.html">FloatStream</a>, <a
					href="./DoubleStream_view.html">DoubleStream</a> , <a
					href="./Fn_view.html">Fn</a> and more <a
					href="./Collectors_view.html">Collectors</a>.
				</li>

				<li>Matrix: <a href="./Matrix_view.html">Matrix</a>,
					<a href="./IntMatrix_view.html">IntMatrix</a>,
					<a href="./LongMatrix_view.html">LongMatrix</a>,
					<a href="./DoubleMatrix_view.html">DoubleMatrix</a>...
				</li>

				<li>Data Binding: <a href="./Parser_view.html">Parser</a>, <a
					href="./JSONParser_view.html">JSONParser</a>, <a
					href="./XMLParser_view.html">XMLParser</a>, <a
					href="./KryoParser_view.html">KryoParser</a>...
				</li>

				<li>SQL Builder/ORM: <a href="./SQLExecutor_view.html">SQLExecutor</a>,
					<a href="./SQLBuilder_view.html">SQLBuilder</a>, <a
					href="./DataSet_view.html">DataSet</a>, <a
					href="./JdbcUtil_view.html">JdbcUtil</a>, <a
					href="./CSVUtil_view.html">CSVUtil</a>...
				</li>

				<li>ORMs for NoSQL: <a href="./MongoCollectionExecutor_view.html">MongoCollectionExecutor</a>,
					<a href="./CassandraExecutor_view.html">CassandraExecutor</a> with
					<a href="./CQLBuilder_view.html">CQLBuilder</a>, <a
					href="./CouchbaseExecutor_view.html">CouchbaseExecutor</a>, <a
					href="./HBaseExecutor_view.html">HBaseExecutor</a>, <a
					href="./DynamoDBExecutor_view.html">DynamoDBExecutor</a> and <a
					href="./Neo4jExecutor_view.html">Neo4jExecutor</a>
				</li>

				<li>Programming in Android: <a
					href="./SQLiteExecutor_view.html">SQLiteExecutor</a>, 
					<a href="./SQLBuilder_view.html">SQLBuilder</a>, 
					<a href="./Async_Android_view.html">Async</a>,  
					<a href="./ContinuableFuture_Android_view.html">ContinuableFuture</a>,
					<a href="./Futures_Android_view.html">Futures</a>,
					<a href="./EventBus_view.html">EventBus</a>,
					<a href="./api-docs/com/landawn/abacus/android/util/Observer.html">Observer</a>,
					<a href="./api-docs/com/landawn/abacus/android/util/ObserverX.html">ObserverX</a>,
					and <a href="./Fu_view.html">Fu</a>.
				</li>

				<li>More: <a
					href="./api-docs/com/landawn/abacus/util/RemoteExecutor.html">RemoteExecutor</a>,
					<a href="./api-docs/com/landawn/abacus/util/Retry.html">Retry</a>,
					<a href="./api-docs/com/landawn/abacus/util/Try.html">Try</a>,
					<a href="./api-docs/com/landawn/abacus/util/Synchronized.html">Synchronized</a>,
					<a href="./api-docs/com/landawn/abacus/util/Wrapper.html">Wrapper</a>,
					<a href="./api-docs/com/landawn/abacus/pool/ObjectPool.html">ObjectPool</a>,
					<a href="./api-docs/com/landawn/abacus/pool/KeyedObjectPool.html">KeyedObjectPool</a>,
					<a href="./api-docs/com/landawn/abacus/cache/SpyMemcached.html">SpyMemcached</a>,
					<a href="./api-docs/com/landawn/abacus/cache/JRedis.html">JRedis</a>,
					<a href="./api-docs/com/landawn/abacus/util/MemcachedLock.html">MemcachedLock</a>,
					<a href="./api-docs/com/landawn/abacus/util/Properties.html">Properties</a>,
					<a href="./api-docs/com/landawn/abacus/util/PropertiesUtil.html">PropertiesUtil</a>,
					<a href="./api-docs/com/landawn/abacus/util/Charsets.html">Charsets</a>,
					<a href="./api-docs/com/landawn/abacus/util/Ascii.html">Ascii</a>,
					<a href="./api-docs/com/landawn/abacus/util/CalendarUnit.html">CalendarUnit</a>,
					<a href="./api-docs/com/landawn/abacus/util/NamingPolicy.html">NamingPolicy</a>,
					<a href="./api-docs/com/landawn/abacus/util/ArrayHashSet.html">ArrayHashSet</a>,
					<a href="./api-docs/com/landawn/abacus/util/ArrayHashMap.html">ArrayHashMap</a>,
					<a href="./api-docs/com/landawn/abacus/util/Holder.html">Holder</a>,
					<a href="./api-docs/com/landawn/abacus/util/LineIterator.html">LineIterator</a>,
					<a href="./api-docs/com/landawn/abacus/util/RowIterator.html">RowIterator</a>,
					<a href="./api-docs/com/landawn/abacus/util/BooleanIterator.html">BooleanIterator</a>
					... 
					<a href="./api-docs/com/landawn/abacus/util/DoubleIterator.html">DoubleIterator</a>,
					<a href="./api-docs/com/landawn/abacus/util/NullabLe.html">NullabLe</a>,
					<a href="./api-docs/com/landawn/abacus/util/Optional.html">Optional</a>
					... 
					<a href="./api-docs/com/landawn/abacus/util/OptionalDouble.html">OptionalDouble</a>,
					<a href="./api-docs/com/landawn/abacus/util/Base64.html">Base64</a>,
					<a href="./api-docs/com/landawn/abacus/util/ClassUtil.html">ClassUtil</a>,
					<a href="./api-docs/com/landawn/abacus/util/EscapeUtil.html">EscapeUtil</a>,
					<a href="./api-docs/com/landawn/abacus/util/DigestUtil.html">DigestUtil</a>,
					<a href="./api-docs/com/landawn/abacus/util/Hex.html">Hex</a>, 
					<a href="./api-docs/com/landawn/abacus/util/FilenameUtil.html">FilenameUtil</a>,
					<a href="./api-docs/com/landawn/abacus/util/JSONUtil.html">JSONUtil</a>,
					<a href="./api-docs/com/landawn/abacus/util/AWSJSONUtil.html">AWSJSONUtil</a>,
					<a href="./api-docs/com/landawn/abacus/util/AddrUtil.html">AddrUtil</a>,
					<a href="./api-docs/com/landawn/abacus/util/URLEncodedUtil.html">URLEncodedUtil</a>,
					<a href="./api-docs/com/landawn/abacus/util/WSSecurityUtil.html">WSSecurityUtil</a>,
					<a href="./api-docs/com/landawn/abacus/util/EmailUtil.html">EmailUtil</a>,
					<a href="./api-docs/com/landawn/abacus/util/IEEE754rUtil.html">IEEE754rUtil</a>,
					<a href="./api-docs/com/landawn/abacus/util/Duration.html">Duration</a>,
					<a href="./api-docs/com/landawn/abacus/util/Range.html">Range</a>,
					<a href="./api-docs/com/landawn/abacus/util/Fraction.html">Fraction</a>,
					<a href="./api-docs/com/landawn/abacus/util/MutableBoolean.html">MutableBoolean</a>
					... 
					<a href="./api-docs/com/landawn/abacus/util/MutableDouble.html">MutableDouble</a>,
					<a href="./api-docs/com/landawn/abacus/util/f.html">f</a>,
					<a href="./api-docs/com/landawn/abacus/hash/Hashing.html">Hashing</a>,
					<a href="./api-docs/com/landawn/abacus/util/Math2.html">Math2</a>,
					<a href="./api-docs/com/landawn/abacus/util/Comparators.html">Comparators</a>,
					<a href="./api-docs/com/landawn/abacus/util/Fn.html">Fn</a>,
					<a href="./api-docs/com/landawn/abacus/util/Iterators.html">Iterators</a>,
					<a href="./api-docs/com/landawn/abacus/util/Maps.html">Maps</a>(from JDK8, Apache commons, Google Guava...) ...
				</li>
			</ul>

			<p></p>
			<p>"SIMPLE IS BEAUTIFUL" - We always keep it in mind to build The
				Best Programming Library EVER.</p>


		</div>

		<p>
			<font size="3">Your questions/issues are welcome at: <a href="https://github.com/landawn/abacus-common/issues">GitHub</a></font>
		</p>

		<div id="pagination">
			<a href="./index.html">Home</a> | <a href="./docs.html">Docs</a>
		</div>

		<div id="footer">© 2015 abacus-common Team</div>

	</div>
</body>

</html>